package org.example.sentineldemo;

import com.alibaba.csp.sentinel.slots.block.RuleConstant;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.util.ArrayList;
import java.util.List;

@SpringBootApplication
public class SentinelDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SentinelDemoApplication.class, args);
//        initFlowRules();
    }

//    private static void initFlowRules() {
//        List<FlowRule> flowRules = new ArrayList<>();
//        FlowRule flowRule = new FlowRule();
//        flowRule.setResource("getUserById"); // 资源名称
//        flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS);  // 根据 QPS 进行限流
//        flowRule.setCount(1);   // QPS 阈值（一秒只允许一个请求通过）
//        flowRule.setStrategy(RuleConstant.STRATEGY_DIRECT); // 调用关联限流策略  （直接 - 默认，链路，关联）
//        flowRule.setControlBehavior(RuleConstant.CONTROL_BEHAVIOR_DEFAULT);   // 设置限流效果 - （直接拒绝，冷启动，匀速启动，冷启动 + 匀速启动）
//        flowRule.setClusterMode(false);  // 设置是否为集群
//        flowRules.add(flowRule);
//        FlowRuleManager.loadRules(flowRules);   // 加载限流规则
//    }

}
